package com.ruoyi.energy.domain.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.Date;
import java.util.List;

@NoArgsConstructor
@Data
public class ParkCarEnterVO {

    @JsonProperty("centryBoxId")
    private Object centryBoxId;
    @JsonProperty("data")
    private List<DataDTO> data;
    @JsonProperty("fnName")
    private String fnName;
    @JsonProperty("fnType")
    private String fnType;
    @JsonProperty("guid")
    private String guid;
    @JsonProperty("msgType")
    private String msgType;

    @NoArgsConstructor
    @Data
    public static class DataDTO {
        @JsonProperty("park_id")
        private String parkId;
        @JsonProperty("parkingName")
        private String parkingName;
        @JsonProperty("area_name")
        private String areaName;
        @JsonProperty("area_person")
        private String areaPerson;
        @JsonProperty("area_phone")
        private String areaPhone;
        @JsonProperty("parking_space_total")
        private String parkingSpaceTotal;
        @JsonProperty("sentrybox_id")
        private String sentryboxId;
        @JsonProperty("port_id")
        private String portId;
        @JsonProperty("port_name_in")
        private String portNameIn;
        @JsonProperty("plate_id")
        private String plateId;
        @JsonProperty("access_time")
        @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
        private Date accessTime;
        @JsonProperty("parking_spaceNum")
        private String parkingSpacenum;
        @JsonProperty("plate_type")
        private String plateType;
        @JsonProperty("plate_subtype")
        private String plateSubtype;
        @JsonProperty("plate_state")
        private String plateState;
        @JsonProperty("plate_color")
        private String plateColor;
        @JsonProperty("cario_id")
        private String carioId;
        @JsonProperty("access_id")
        private String accessId;
        @JsonProperty("camera_ip")
        private String cameraIp;
        @JsonProperty("image_filename_in")
        private String imageFilenameIn;
        @JsonProperty("imagestream")
        private List<ImagestreamDTO> imagestream;
        @JsonProperty("timestamp")
        private String timestamp;
        @JsonProperty("signature")
        private String signature;

        @NoArgsConstructor
        @Data
        public static class ImagestreamDTO {
            @JsonProperty("streamdata")
            private String streamdata;
        }
    }
}
